iT邦幫忙

2025 iThome 鐵人賽

DAY 20
0
AI & Data

30 天入門常見的機器學習演算法系列 第 20

(Day 20) 激活函數 (Activation Function)

  • 分享至 

  • xImage
  •  

承接昨天的神經元 (Neuron),神經元的輸出是線性輸出,若僅停留在這個階段,輸出仍然是線性函數,即便我們把很多神經元堆疊在一起,整體模型仍然等效於一個線性轉換,無法捕捉到真實世界中複雜的非線性關係為了解決這個問題,我們需要引入激活函數 (Activation Function) 可以讓模型學習到更複雜的模式 (非線性),所以激活函數必須是非線性的,這樣才能跟神經元做搭配。

常見的激活函數

1. Sigmoid 函數

$$
\sigma(x) = \frac{1}{1+e^{-x}}
$$

特點:

  • 輸出範圍在 [0,1] 之間
  • 常用於二元分類問題
  • 缺點: 容易出現梯度消失問題

2. Softmax

$$
\sigma(z_i) = \frac{e^{z_i}}{\sum_{j=1}^{K}e^{z_j}}
$$

特點:

  • 輸出範圍: $(0,1)$,且所有輸出和為 1
  • 特點: 多分類問題的常用輸出層函數

3. ReLU (Rectified Linear Unit)

$$
f(x) = max(0, x)
$$

特點:

  • 輸出範圍:$[0, +\infty)$
  • 特點: 簡單高效,目前深度學習最常用的激活函數
  • 缺點: 在 $x < 0$ 的區域梯度為 0,可能導致「神經元死亡」

4. Tanh (雙曲正切函數)

$$
\text{tanh}(x) = \frac{e^{x} - e^{-x}}{e^{x} + e^{-x}}
$$

特點:

  • 輸出範圍在 [-1,1] 之間
  • 特點: 相較 Sigmoid,數值以 0 為中心,收斂較快
  • 缺點: 仍然存在梯度消失問題

如何選擇激活函數?

  • 一般建議:
    • 隱藏層優先使用 ReLU
    • 輸出層根據任務類型選擇:
      • 二元分類: Sigmoid
      • 多類別分類: Softmax
      • 迴歸問題: 線性激活或無激活函數
  • 特殊情況:
    • 如果遇到 ReLU 死亡問題,可以考慮使用 Leaky ReLU
    • 處理序列資料時,GRU/LSTM 中常用 Tanh

總結

激活函數是深度學習中不可或缺的組件,選擇合適的激活函數對模型的性能有重要影響。現代深度學習中,ReLU 及其變體是最常用的選擇,但在特定場景下其他激活函數可能更適合。了解各種激活函數的特點和適用場景,有助於構建更好的神經網路模型。


上一篇
(Day 19) 神經元 (Neuron)
下一篇
(Day 21) 卷積神經網絡 (Convolutional Neural Network)
系列文
30 天入門常見的機器學習演算法30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言